<?php

namespace Mouta\UserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class MensajesController extends Controller
{
	const LIMIT = 3;
	
    public function indexAction()
    {
		$limit = self::LIMIT;
        $offset = 0;

		$user = $this->getUser();
		$users = $this->getDoctrine()->getManager()->getRepository('AmistateBundle:Usuario')->listarUsuarioConMensajes($user->getId(), ++$limit, $offset);

		$mas = false;
		if(count($users)>self::LIMIT)
		{
			array_pop($users);
			$mas = true;
		}

        return $this->render('UserBundle:Mensajes:index.html.twig', array(
			'users'=>$users,
			'mas'=>$mas,
			'activateFirst'=>true,
			'currentUser'=>$user
		));
    }
	
	public function masUsuariosAction()
    {
		$request = $this->getRequest();
		$page = $request->get('page', 1);
		$limit = self::LIMIT;
        $offset = ($page-1) * $limit;
		
		$user = $this->getUser();
		$users = $this->getDoctrine()->getManager()->getRepository('AmistateBundle:Usuario')->listarUsuarioConMensajes($user->getId(), ++$limit, $offset);
		
		$mas = false;
		if(count($users)>self::LIMIT)
		{
			array_pop($users);
			$mas = true;
		}
		
		$tabHeaders = $this->container->get('templating')->render('UserBundle:Mensajes:masUsuarios.html.twig', array(
			'users'=>$users,
			'activateFirst'=>false,
			'mas'=>$mas
		));
		$tabContents = $this->container->get('templating')->render('UserBundle:Mensajes:masUsuariosContent.html.twig', array(
			'users'=>$users
		));
		
		$response = new Response(json_encode( array('tabHeaders'=>$tabHeaders, 'tabContents'=>$tabContents) ));
		$response->headers->set('Content-Type', 'application/json');
		return $response;
    }
	
    public function loadAction()
    {
		$request = $this->getRequest();
		$page = $request->get('page', 1);
		$limit = self::LIMIT;
        $offset = ($page-1) * $limit;
		
		$userId = $request->get('userId');
		$userTo = $this->getDoctrine()->getManager()->getRepository('AmistateBundle:Usuario')->find($userId);
		
        $currentUser = $this->getUser();
		$mensajes = $this->getDoctrine()->getManager()->getRepository('AmistateBundle:Mensaje')->getMensajesByUsuario($currentUser->getId(),$userId, ++$limit, $offset);
		$mas = false;

        if(count($mensajes)>self::LIMIT)
        {
            array_pop($mensajes);
            $mas = true;
        }

        $em = $this->getDoctrine()->getManager();
        foreach ($mensajes as $mensaje) {
            if($mensaje->getLeido() == 0)
            {
                $mensaje->setLeido(1);
                $em->persist($mensaje);
            }
        }
        $em->flush();

        return $this->render('UserBundle:Mensajes:mensaje.html.twig', array(
			'mensajes'=>$mensajes,
			'mas'=>$mas,
			'page'=>$page,
			'userTo'=>$userTo,
			'currentUser'=>$currentUser
		));
    }

}
